<?php

namespace catchAdmin\customs\model;

use catcher\CatchAuth;
use think\Model;
use catcher\traits\db\BaseOptionsTrait;
use catcher\traits\db\ScopeTrait;
use catchAdmin\customs\model\search\OrderSonSearch;
/**
 *
 * @property int $id
 * @property string $orderId
 * @property string $productId
 * @property datetime $createTime
 * @property float $price
 * @property float $amout
 * @property int $num
 * @property string $GModel
 * @property string $barcode
 * @property string $GCode
 * @property float $weight
 * @property float $rough_weight
 * @property float $Qty
 * @property float $Qty1
 * @property float $Qty2
 * @property int $spec_qty
 * @property string $Unit
 * @property string $Unit1
 * @property string $Unit2
 * @property string $business_addr
 * @property string $tradeCountry
 * @property string $currency
 * @property string $RecordMaterialNo
 * @property string $productName
 * @property string $goods_name
 * @property string $goods_url
 * @property datetime $modifyTime
 * @property int $deleteStatus
 * @property string $merchant_id
 * @property string $note
 */
class OrderSon extends Model
{
    use BaseOptionsTrait, ScopeTrait, OrderSonSearch;
    
    public $field = [
        //
        'id',
        // 订单号
        'orderId',
        'orderlistId',
        'goods_supplier_id',
        // 电商平台自定义商品编号
        'productId',
        // 订单时间
        'createTime',
        // 实际单价(非现金抵扣后单价)
        'price',
        // 总价(实际单价*数量)
        'amout',
        // 数量
        'num',
        // 商品规格型号(满足海关归类、审价以及监管的要求为准。包括：品牌、规格、型号等)
        'GModel',
        // 条形码
        'barcode',
        // 海关登记商品编码
        'GCode',
        // 净重(KG)
        'weight',
        // 毛重(KG)
        'rough_weight',
        // 计量数量(按成交计量单位的实际数量)
        'Qty',
        // 法定数量
        'Qty1',
        // 第二数量
        'Qty2',
        // 组合规格（组合商品数量）
        'spec_qty',
        // 计量单位
        'Unit',
        // 法定计量单位
        'Unit1',
        // 第二计量单位
        'Unit2',
        // 原产国（地区）代码
        'business_addr',
        // 贸易国编号
        'tradeCountry',
        // 币制
        'currency',
        // 账册备案料号
        'RecordMaterialNo',
        // 海关备案产品名称
        'productName',
        // 电商平台商品名称
        'goods_name',
        //
        'goods_url',
        //
        'modifyTime',
        // 1:删除  0:正常
        'deleteStatus',
        // 电商商户编号db_customs_tenant关联
        'merchant_id',
        // 备注
        'note',
        'sku_id',
        'sku_name',
        'trade_type_name',
        'tenant_goods_price',
        'headImg',
        'api_return',
        'api_error',
        'api_post_status'
    ];

    protected $json = [
        'api_return',
        'api_error'
    ];


    public $name = 'db_customs_orderlist';
    /**
     * 关联列表
     * @time 2020年01月09日
     * @param $params
     */
    public function getExportList()
    {
        $CatchAuth = new CatchAuth();
        //$where['a.deleteStatus'] = 0;
        //$where['a.status'] = 0;
        //非管理员要商户id
        $where=[];
        if($CatchAuth->user()['type'] !== 1 ){
            $where['b.tenant_id'] = $CatchAuth->user()['tenant_id'];
        }

         return $this->catchSearch()
            ->alias('a')
            ->field('a.orderId,d.g_name,a.goods_name,a.barcode,d.g_code,a.num,a.spec_qty,d.unit,a.price,a.amout,d.net_weight,d.gross_weight,d.origin_country_code,b.invt_no')
            ->leftJoin('db_customs_order b','a.orderId = b.orderId')
            ->leftJoin('db_customs_tenant c','b.tenant_id = c.tenant_id')
            ->leftJoin('db_customs_record_material d','a.barcode = d.barcode')
            ->where(['a.deleteStatus'=>0,'b.deleteStatus'=>0,'b.status'=>0])
            ->where($where)
            ->order('a.id','desc')
            ->select();

    }
}